// The namespace will make more elaborate units of memory

// Scope qualifying symbol such as "std::"
//	High reliability

// Namespace instruction
//	Low reliability

#include <iostream>


namespace ICBC{
	int g_money = 0;
	void save (int money){
		g_money += money;
	}
}

namespace CCB{
	int g_money = 0;
	// This is a method that statement and definition together
	void save (int money){
		g_money += money;
	}

	void pay(int money); // statement
}

// Make sure it matches the statement
void CCB::pay( int money){  //definition
	g_money -= money;
}


// Merge  namespace
namespace ICBC{
	void pay( int money ){
		g_money -= money;
	}
}



int main( void ){
	ICBC::save(10000);
	ICBC::pay(3000);

	std::cout << "Balance of ICBC:" << ICBC::g_money << std::endl;

	return 0;
}

